﻿namespace los12
{
    #region     知识点一   基本概念
    //一个类A继承一个类B
    //类A将会继承类B的所有成员
    //A类将会拥有B类的所有特征和行为

    //被继承的类称为父类 基类 超类

    //继承的类称为子类 派生类

    //子类可以有自己的特征和行为

    //特点
    //1.单根性 子类只能有一个父类
    //2.传递性 子类可以间接继承父类的父类
    #endregion

    #region     知识点二    基本语法
    //class 类名:被继承的类名
    //{

    //}
    #endregion

    #region     知识点三   实例
    class Teacher
    {
        public string name;
        //职工号
        public int number;
        public void Speak()
        {
            Console.WriteLine("我是{0}老师",name);
        }
    }
    class Teaching:Teacher
    {
        public string subject;
        public void SubjectSpeak()
        {
            Console.WriteLine("科目是" + subject);
        }

    }
    #endregion

    #region     知识点四   访问修饰符的影响
    //public — 公共 内外部访问
    //private — 私有 内部访问 
    //protected — 保护 内部和子类访问

    //之后讲命名空间的时候讲
    //internal — 内部的 只有在同一个程序集的文件中，内部类或者成员才可以访问
    #endregion

    #region     知识点五   子类和父类的同名成员
    //概念
    //C#中允许子类存在和父类同名
    //但是 极 不建议使用
    #endregion
    internal class class12
    {
        static void Main(string[] args)
        {
            Console.WriteLine("继承的基本规则");
            Teaching t1 = new Teaching();
            t1.name = "Charlie";
            t1.number = 1;
            t1.Speak();
            t1.subject = "unity";
            t1.SubjectSpeak();

            //总结：
            //继承基本方法
            //class 类名：父类名
            //1.单根性
            //2.传递性
            //3.访问修饰符 对与成员的影响
            //4.极其不建议使用 在子类中申明和父类同名的成员（以后学习了多态再来解决其问题）
        }
    }
}
